﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CRCDesktop.org.h1.crcdesktop.util;

namespace CRCDesktop.org.h1.crcDesktop.util
{
    public class BibliotecaFuncoes
    {

        public BibliotecaFuncoes()
        {

        }

        /*
         * Este method retornar um array com strings que estão separadas por "-" em uma string passada.
         * 
         * */
        public string[] captureFourString(string longString, int qtdValue)
        {
            string[] retorno = new string[qtdValue];
            char[] arrayString = longString.ToCharArray();
            string concat = "";
            int count = 0;

            for(int i = 0; i!=arrayString.Length; i++){
                string a = arrayString[i].ToString();
                if(!a.Equals("-")){
                    concat += a;
                }else if (a.Equals("-")){
                    retorno[count] = concat;
                    concat = "";
                    count++;
                }
            }
            retorno[count] = concat;
            return retorno;
        }


        /*
         * Este method retornar um array com strings que estão separadas por "-" em uma string passada.
         * 
         * */
        public string[] captureTwoString(string longString, int qtdValue)
        {
            string[] retorno = new string[qtdValue];
            char[] arrayString = longString.ToCharArray();
            string concat = "";
            int count = 0;

            for (int i = 0; i != arrayString.Length; i++)
            {
                string a = arrayString[i].ToString();
                if (!a.Equals("-"))
                {
                    concat += a;
                }
                else if (a.Equals("-"))
                {
                    retorno[count] = concat;
                    concat = "";
                    count++;
                }
            }
            retorno[count] = concat;
            return retorno;
        }

        public static string convertToBinary(int value)
        {
            string stringRetorno = "";
            if (value == 0 || value == 1)
            {
                stringRetorno = value.ToString();
            }
            else
            {
                while (value > 0)
                {
                    stringRetorno += (value % 2).ToString();
                    value = value / 2;
                }
                while (stringRetorno.Length < ConstantesEasyLab.QTD_PORTAS)
                {
                    stringRetorno += 0;
                }
                int binaryLength = stringRetorno.Length;
                char[] binaryString = new char[binaryLength];
                for (int i = 0; i < binaryLength; i++)
                {
                    binaryString[i] = stringRetorno[binaryLength - 1 - i];
                }
                stringRetorno = new string(binaryString);
            }
            return stringRetorno;
        }
    }
}
